﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
public partial class master_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string idActivo = Request.QueryString["ActivoID"];
            if (idActivo != null && !idActivo.Trim().Equals("") && !idActivo.Equals("0"))
            {
                iActivoMejorado.Value = idActivo;
                ModPersona mod = new ModPersona();
                List<Tbl_Personas> lista = mod.listAllPersona();
                List<FormatPersona> listFormatted = getFormattedPersonas(lista);
                Encargado.DataSource = listFormatted;
                Encargado.DataValueField = "PID";
                Encargado.DataTextField = "PNombre";
                Encargado.DataBind();
                ModContabilidad cont = new ModContabilidad();
                List<Tbl_TiposActivosFijos> list = cont.getAllTiposActivo();
                Tbl_ActivoFijos activo = cont.getActivoporID(Convert.ToInt32(idActivo));
                if (activo != null)
                {
                    foreach (Tbl_TiposActivosFijos tipo in list)
                    {
                        if (tipo.iTipoActivo_id == activo.iTipoActivo_id)
                        {
                            iTipoActivo_id.Text = tipo.sCodigoActivoFijo;
                            iTipoActivo_id.ReadOnly = true;
                            break;
                        }
                    }
                    sLocalizacionActual.Text = activo.sLocalizacionActual;
                }
                //ModContabilidad contabilidad = new ModContabilidad();
                //List<Tbl_TiposActivosFijos> tipos = contabilidad.getAllTiposActivo();
                //Tbl_TiposActivosFijos tipo = new Tbl_TiposActivosFijos();
                //iTipoActivo_id.DataSource = tipos;
                //iTipoActivo_id.DataValueField = "iTipoActivo_id";
                //iTipoActivo_id.DataTextField = "sCodigoActivoFijo";
                //iTipoActivo_id.DataBind();
            }
        }
    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        Tbl_Usuarios usuarioActual = (Tbl_Usuarios)Session["CurrentUser"];
        if (usuarioActual != null)
        {
            ModContabilidad cont = new ModContabilidad();
            Tbl_ActivoFijos activoFijo = new Tbl_ActivoFijos();
            int iActivoM = Convert.ToInt32(iActivoMejorado.Value);
            Tbl_ActivoFijos activoFijoMejora = cont.getActivoporID(iActivoM);
            activoFijo.sDescripcionActivo = sDescripcionActivo.Text;
            activoFijo.iValorOriginalCompra = Convert.ToDecimal(iValorOriginalCompra.Text);
            activoFijo.Encargado = Convert.ToInt32(Encargado.SelectedValue);
            activoFijo.iTipoActivo_id = (activoFijoMejora != null) ? activoFijoMejora.iTipoActivo_id : 0;
            activoFijo.sLocalizacionActual = (activoFijoMejora != null) ? activoFijoMejora.sLocalizacionActual : "null";
            activoFijo.dtFecha_ingreso = Convert.ToDateTime(dtFecha_ingreso.Text);
            activoFijo.dtFecha_UltimaDepreciacion = activoFijo.dtFecha_ingreso;
            activoFijo.iCreadoPor = usuarioActual.iUsuario_id;
            cont.insertActivoFijo(activoFijo, 1);
            Tbl_ActivoFijos activo = cont.getUltimoActivo();
            Tbl_Mejoras mejora = new Tbl_Mejoras();
            mejora.Descripcion = "";
            mejora.iActivoDeMejora = activo.iActivoFijo_id;
            mejora.iActivoMejorado = Convert.ToInt32(iActivoMejorado.Value);
            mejora.iConcurrencia = 1;
            mejora.iEstado_fl = true;
            mejora.Descripcion = sDescripcionMejora.Text;
            cont.insertMejora(mejora);
        }
        Response.Redirect("ActivoFijoList.aspx");
    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        Response.Redirect("ActivoFijoList.aspx");
    }

    public static List<FormatPersona> getFormattedPersonas(List<Tbl_Personas> personas)
    {
        List<FormatPersona> formatted = new List<FormatPersona>();
        foreach (Tbl_Personas person in personas)
        {
            formatted.Add(new FormatPersona(person.iPersona_id, person.sNombre + " " + person.sApellido_paterno + " " + person.sApellido_Materno));
        }
        return formatted;
    }
    public class FormatPersona
    {
        private int pID;

        public int PID
        {
            get { return pID; }
            set { pID = value; }
        }

        private string pNombre;

        public string PNombre
        {
            get { return pNombre; }
            set { pNombre = value; }
        }

        public FormatPersona(int id, string nombre)
        {
            this.pID = id;
            this.pNombre = nombre;
        }
    }
}